home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
476-500
/
disk_484
/
ezasm
/
make1.s
< prev
next >
Wrap
Text File
|
1992-05-06
|
2KB
|
152 lines
* Make for EZAsm, A68k, Blink
* Test for success by Lock() / Examine() on produced file
* ( Minutes combined with Tics to prevent "wrap around" problems )
LONG CLIName CLILen _DosBase OutHandle
LONG Buf Tbuf
LONG FIB Cdays Flock Comb
CLIName = a0
CLILen = d0 ;save 'um
_DosBase = OpenLibrary( "dos.library" 0 )
beq Quit
FIB = AllocMem( 300 $10001 )
beq Quit
Tbuf = AllocMem( 12 $10001 ) ;DateStamp() buffer
beq Quit
Buf = AllocMem( 100 $10001 ) ;Execute() buffer
beq Quit
PrintInit( )
beq Quit
OutHandle = Output( )
* Null name arg
a0 = CLIName
CLILen -- ;adjust
a0 += CLILen
(a0) = 0 b ;$0A -> $00
* Get current time
a0 = DateStamp( Tbuf )
Cdays = (a0) ;save Days
d0 = 4(a0) ;D0 = Minutes
swap d0 ;Minutes to upper 2 bytes
d0 |= 8(a0) ;combine Minutes with Tics
Comb = d0 ;save for compare
Print( "--------------------\n" * )
strcpy( Buf "ezasm " )
strcat( Buf CLIName )
strcat( Buf ".s\n" )
Execute( Buf 0 OutHandle ) ; "ezasm [file].s\n"
Print( "--------------------\n" * )
strcpy( Buf CLIName ) ;get name to Lock()
strcat( Buf ".asm" )
bsr Check
strcpy( Buf "a68k " )
strcat( Buf CLIName )
strcat( Buf ".asm\n" )
Execute( Buf 0 OutHandle ) ; "a68k [file].asm\n"
Print( "--------------------\n" * )
strcpy( Buf CLIName ) ;get name to Lock()
strcat( Buf ".o" )
bsr Check
strcpy( Buf "blink FROM " )
strcat( Buf CLIName )
strcat( Buf ".o LIBRARY ez.lib TO " )
strcat( Buf CLIName )
strcat( Buf "\n" );
* Blink FROM [file].o LIBRARY ez.lib TO [file]
Execute( Buf 0 OutHandle )
* Don't worry if Blink fails..
jmp Quit
Check
Flock = Lock( Buf -2 )
beq Quit
* It's here, but is it more recent than Current values?
Examine( Flock FIB )
beq Quit
a0 = FIB
d0 = 132(a0) ;D0 = Days
d0 < Cdays Quit
d0 = 136(a0) ;D0 = Minutes
swap d0
d0 |= 140(a0) ;combine with Tics
d0 < Comb Quit
UnLock( Flock )
Flock = 0
rts
Quit
PrintClose( )
Flock != 0 {
UnLock( Flock )
}
FIB != 0 {
FreeMem( FIB 300 )
}
Tbuf != 0 {
FreeMem( Tbuf 12 )
}
Buf != 0 {
FreeMem( Buf 100 )
}
_DosBase != 0 {
CloseLibrary( _DosBase )
}
END